using System;

namespace Zadanie52 // Zadanie 5.2
{
    class Trojmian
    {
        double a, b, c, delta, x1, x2; 
        byte liczba_pierwiastkow;

        public void czytaj_dane() // deklaracja i definicja metody czytaj_dane()
        {
            Console.WriteLine("Program oblicza pierwiastki rwnania kwadratowego dla dowolnych a, b, c.");
            Console.WriteLine("Podaj a."); 
            a = double.Parse(Console.ReadLine());

            if (a == 0)
            {
                Console.WriteLine("Niedozwolona warto wspczynnika a. Nacinij klawisz ENTER.");
                Console.Read(); // nacinij klawisz Enter
                Environment.Exit(0); // wyjcie z programu
            }
            else
            {
                Console.WriteLine("Podaj b.");
                b = double.Parse(Console.ReadLine());
                Console.WriteLine("Podaj c.");
                c = double.Parse(Console.ReadLine());
            }
        }

        public void przetworz_dane() // deklaracja i definicja metody przetworz_dane() 
        {
            delta = b*b-4*a*c;

            if (delta < 0) liczba_pierwiastkow = 0;
            if (delta == 0) liczba_pierwiastkow = 1;
            if (delta > 0) liczba_pierwiastkow = 2;

            switch (liczba_pierwiastkow)
            {
                case 1: x1 = -b/(2*a);
                    break;
                case 2:
                    {
                        x1 = (-b-Math.Sqrt(delta))/(2*a); 
                        x2 = (-b+Math.Sqrt(delta))/(2*a);
                    }
                    break;
            }
        }

        public void wyswietl_wynik() // deklaracja i definicja metody wyswietl_wynik() 
        {
            Console.WriteLine("Dla wprowadzonych liczb");
            Console.WriteLine("a = {0:##.##},", a);
            Console.WriteLine("b = {0:##.##},", b);
            Console.WriteLine("c = {0:##.##},", c);

            switch (liczba_pierwiastkow)
            {
                case 0: Console.WriteLine("brak pierwiastkw rzeczywistych."); 
                    break;
                case 1: Console.WriteLine("trjmian kwadratowy ma jeden pierwiastek podwjny: x1 = {0:##.##}.", x1);
                    break;
                case 2:
                    {
                        Console.WriteLine("trjmian kwadratowy ma dwa pierwiastki:");
                        Console.WriteLine("x1 = {0:##.##},", x1);
                        Console.WriteLine("x2 = {0:##.##}.", x2);
                    }
                    break;
            }
        }

        static void Main(string[] args)
        {
            Trojmian trojmian1 = new Trojmian(); 
            
            trojmian1.czytaj_dane();
            trojmian1.przetworz_dane(); 
            trojmian1.wyswietl_wynik();

            Console.Read(); // nacinij klawisz Enter
        }
    }
}